Otherwise `cargo-update` ends up not doing much because all sources are
considered equal regardless of their precision.
pub fn write_resolve(pkg: &Package, resolve: &Resolve) -> CargoResult<()> {
let loc = pkg.get_root().join("Cargo.lock");
- match load_lockfile(&loc, pkg.get_package_id().get_source_id()) {
- Ok(Some(ref prev_resolve)) if prev_resolve == resolve => return Ok(()),
- _ => {}
- }
-
let mut e = Encoder::new();
resolve.encode(&mut e).unwrap();
let lock = lock.assert();
let lock = lock.as_slice().replace("\n", "\r\n");
File::create(&lockfile).write_str(lock.as_slice()).assert();
- lockfile.move_into_the_past().assert();
- let mtime = lockfile.stat().assert().modified;
assert_that(p.process(cargo_dir().join("cargo-build")),
execs().with_status(0));
- assert_eq!(lockfile.stat().assert().modified, mtime);
})
test!(adding_and_removing_packages {